package com.lancoo.cvas.pojo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lancoo.cvas.entity.Teacher;
import com.lancoo.cvas.entity.TeachingClassWeek;
import com.lancoo.cvas.pojo.dto.ScheduleDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel("学生选课课程")
public class StudentCourseVo {
    @ApiModelProperty("学生选课主键id")
    private Long id;

    @ApiModelProperty("学生id")
    private Long studentId;

    @ApiModelProperty("学生名字")
    private String studentName;

    @ApiModelProperty("1已选   2退选   3管理员移除")
    private Integer flag;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty("最后修改时间-退选时间")
    private LocalDateTime modifiedTime;

    @ApiModelProperty("学号-基础平台学生id")
    private String baseStudentId;

    @ApiModelProperty("课程id")
    private Long courseId;

    @ApiModelProperty("课程名称")
    private String courseName;

    @ApiModelProperty("课程代码")
    private String courseCode;

    @ApiModelProperty("课程学分")
    private Double credit;



    @ApiModelProperty("课程类别id")
    private String courseTypeId;

    @ApiModelProperty("课程类别")
    private String courseType;

    @ApiModelProperty("课程性质 1必修  2选修")
    private Integer courseNature;

    @ApiModelProperty("专业性质，1:公共课，2:专业课")
    private Integer majorProp;

    @ApiModelProperty("教学班id")
    private Long teachingClassId;

    @ApiModelProperty("教学班名称")
    private String teachingClassName;

    @ApiModelProperty("0无需选课 1在线选课;2:分级教学 3:预选教学班")
    private Integer teachingClassType;

    @ApiModelProperty("教学班容量-学生人数")
    private Integer classNum;

    @ApiModelProperty("已选人数")
    private Integer selectedStudent;

    @ApiModelProperty("修读性质：1主修2辅修")
    private Integer studyNature;

    @ApiModelProperty("行政班id")
    private String classId;

    @ApiModelProperty("行政班名称")
    private String className;

    @ApiModelProperty("专业id")
    private String majorId;

    @ApiModelProperty("专业名称")
    private String majorName;


    @ApiModelProperty("年级id")
    private String gradeId;

    @ApiModelProperty("学生头像")
    private String imageUrl;

    @ApiModelProperty("所属年级")
    private String gradeName;

    @ApiModelProperty("教师列表")
    private List<Teacher> teachers;

    @ApiModelProperty("教学班对应场地节次")
    List<ScheduleDto> schedules;

    @ApiModelProperty("参数设置")
    private List<TeachingClassWeek> courseWeeks;
}
